Deploy a .NET application on Microsoft Azure Cobalt 100 VMs

Who is this for?

This is an advanced topic for software developers who want to develop cloud-native applications using GitHub Actions and Azure Kubernetes Service (AKS), and run them on Microsoft Azure Cobalt 100 VMs.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Configure an Azure Cobalt 100 VM as a self-hosted GitHub runner.
  • Create an AKS cluster with Arm-based Azure Cobalt 100 nodes using Terraform.
  • Deploy a .NET application to AKS with GitHub Actions using the self-hosted Arm64-based runner.

Prerequisites

Before starting, you will need the following:

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll set up a self-hosted GitHub Actions runner on an Azure Cobalt 100 VM and use it to build a .NET 8 web application for arm64. With Terraform, you’ll create an Azure Kubernetes Service (AKS) cluster backed by Cobalt 100-based nodes, then use a GitHub Actions workflow to deploy the application to the cluster. Along the way, you’ll select an appropriate Cobalt 100-based VM series for the runner, confirm the runner is available to execute jobs, and validate that the workload targets the Arm-based AKS nodes. The result is a working CI/CD path from source to a running application on Azure Cobalt 100 infrastructure.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
Which Azure Cobalt 100 VM series should I use for the self-hosted runner?
Azure Cobalt 100 offers general-purpose Dpsv6/Dplsv6 and memory-optimized Epsv6 series. Choose based on your build and deployment needs. The Learning Path doesn’t prescribe a specific size.
Do I have to use a self-hosted runner, or can I use GitHub-hosted `arm64` runners?
GitHub-hosted arm64 runners are generally available for Team and Enterprise Cloud accounts. If your account qualifies, you can use hosted arm64 runners instead of a self-hosted runner.
How do I know the self-hosted GitHub Actions runner is ready before triggering the workflow?
Confirm the runner is installed on the Azure Cobalt 100 VM and appears online in GitHub. Don’t start the workflow until the runner reports an available status.
What result should I expect after applying the Terraform configuration?
Terraform creates an AKS cluster with node pools based on Azure Cobalt 100. This cluster is then targeted by the GitHub Actions workflow that deploys the .NET application.
How can I verify the .NET application is running on Arm-based nodes in AKS?
Check that the deployed workload is scheduled onto the AKS node pool created for Azure Cobalt 100. Seeing pods running on that pool indicates the application is using arm64 nodes as intended.
Next